1. Technical Field
The present invention relates to service composition.
2. Discussion of the Related Art
The Web Services research community has proposed a number of approaches for service composition, ranging from manual to semi-automatic to completely automatic. However, it is often difficult to take independently developed services and compose them, since they may not work together correctly.
The conventional service-oriented architecture (SOA) lifecycle is essentially top-down, consisting of the four phases: Model, Assembly, Deploy and Manage. Modeling is the process of capturing the business design from an understanding of business requirements and objectives. Business requirements are translated into a specification of business processes, goals, and assumptions for creating a model of the business. During the Assemble phase, the IT organization takes the business design and assembles information system artifacts that implement the design. In this phase, existing artifacts and applications may be reused to meet the needs of the design, and new artifacts may be created as well. The Deploy and Manage phases include hosting the applications and monitoring the production runtime environment.
While the SOA lifecycle does emphasize flexibility and reuse, in practice, it is difficult to respond rapidly to changing user requirements and processing needs. Typically, new user requirements are again addressed top-down by going through the four stages. However, it may be possible to address some new user requirements by assembling new workflows from available services in a bottom-up fashion. For this to happen, however, the services should modeled and developed keeping in mind the needs of spontaneous composition.
There are a number of challenges in combining the top-down and bottom-up approaches to service engineering. Firstly, the requirements should be captured appropriately, at the right level of abstraction and formality. Next, one should ensure that an appropriate set of services are developed, which can be combined into workflows that satisfy the requirements. Another challenge is in enabling a high degree of reuse of both individual services and of workflows in different contexts and in different application domains. Finally, there should be mechanisms for end-users to have appropriate workflows rapidly assembled for them in response to their processing needs.
Accordingly, there is a need for services to be designed and developed in a manner that facilitates their composition.